package com.meilai.project.dto.business.sale;

import com.meilai.project.dto.business.saleOrder.BillSaleMediaCycleDTO;
import com.meilai.project.dto.workflow.WorkFlowExtraSubmitDTO;
import com.meilai.project.entity.business.sale.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;

@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ApiModel
public class SaleBillDTO extends WorkFlowExtraSubmitDTO {

    @ApiModelProperty(value = "填表日期")
    private LocalDate fill_date;

    @ApiModelProperty(value = "客户id")
    private Long customer_id;

    @ApiModelProperty(value = "分公司id")
    private Long dept_id;

    @ApiModelProperty(value = "本次发布金额")
    private BigDecimal release_amount;

    @ApiModelProperty(value = "本次换画面金额")
    private BigDecimal replace_amount;

    @ApiModelProperty(value = "本次执行金额")
    private BigDecimal execute_amount;

    @ApiModelProperty(value = "是否置换：1：是，0：否")
    private Integer need_replace;

    @ApiModelProperty(value = "物品金额")
    private BigDecimal item_amount;

    @ApiModelProperty(value = "现金金额")
    private BigDecimal cash_amount;

    @ApiModelProperty(value = "计提额")
    private String accrued_amount;

    @ApiModelProperty(value = "收款时间")
    private LocalDate collection_time;

    @ApiModelProperty(value = "是否开发票：1：是，0：否")
    private Integer need_invoice;

    @ApiModelProperty(value = "备注")
    private String memo;

    @ApiModelProperty(value = "合同id")
    private Long contract_id;

    @ApiModelProperty(value = "合同编号")
    private String contract_num;

    @ApiModelProperty(value = "折扣")
    private BigDecimal discount;

    @ApiModelProperty(value = "1：普通类型 2：换画类型")
    private Integer type = 1;

    @ApiModelProperty(value = "媒体类型对应数量金额（媒体形式）")
    private List<BillSaleMediaDetail> mediaDetailList;

    @ApiModelProperty(value = "媒体类型代理信息")
    private List<BillSaleProxyMediaDetail> proxyMediaDetailList;

    @ApiModelProperty(value = "累计已执行金额")
    private BigDecimal total_executed_amount;

}
